下拉刷新
C++ 项目
分类

这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub C++ 项目 集合。

Star 1.9w
Fork 970

每秒可解析千兆字节的高性能 JSON 解析库

simdjson

在没有游戏源代码的前提下,通过逆向工程和代码注入实现植物大战僵尸局域网对战模式。成功加载后解密模式的最后一关,会变为网络对战关卡。玩法为其中一个玩家放置植物进行防御,另一玩家放置僵尸进攻。项目结合逆向工程、C++和汇编相关技术,在无源代码的前提下为游戏增加功能。对逆向工程感兴趣的小伙可以看看源码

Plants-vs.-Zombies-Online-Battle
3
xpack
Star 591
Fork 124

实现 C++ 结构体和 JSON/XML/BSON 互转的库。C++ 初学者可以通过该项目学到高阶的宏技巧和初级的 SFINAE 写法

#include <iostream> #include "xpack/json.h" // 包含该头文件 struct User { int id; std::string name; XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾 }; int main(int argc, char *argv[]) { User u; string data = "{\"id\":12345, \"name\":\"xpack\"}"; xpack::json::decode(data, u); // json转结构体 cout<<u.id<<';'<<u.name<<endl; string json = xpack::json::encode(u); // 结构体转json cout<<json<<endl; return 0; }
Star 2.7w
Fork 6.1k

用 C++ 编写的高性能键值存储引擎。该项目是由 Fackbook 数据库团队基于 levelDB 开发,键值均支持二进制流,能够充分利用多核 CPU 获得高性能,并兼容 levelDB 的 API 可谓是青出于蓝而胜于蓝。RocksDB 当下十分流行,一些开源数据库底层存储用的就是它

Star 3.3k
Fork 427

基于 RocksDB 并兼容 Redis 协议的 NoSQL 数据库。磁盘类型的 Redis 为降低存储成本而生,存储成本可以降到 Redis 的 1/3 以上

kvrocks
Star 319
Fork 81

一个跨平台、轻量级、支持 C++ 和 Lua 的 Web 框架。支持 TCP、KCP、WebSocket、HTTP 等协议,底层采用 libuv 异步 IO 提高并发,避免多线程上下文切换开销和破坏代码美感,网络部分和逻辑部分使用一个主事件循环驱动。支持 Lua 提高开发效率,适用于小型游戏开发,示例代码:

event_init() server = NetServer:new() server.on_accept = function(conn) end server.on_close = function(conn) end server.on_msg = function(conn, msgtype, pack) end server:listen("127.0.0.1", 3001, false) event_run()
Star 4.1k
Fork 657

一款 C++ 写的数据可视化桌面工具。支持多平台,效果和操作步骤如下:

Serial-Studio
Star 5.8k
Fork 745

一个用 C++ 编写的 Windows 比较和合并工具。它可以比较文件和文件夹,以直观的可视化格式来显示两者甚至三者之间的差异,操作简单

winmerge
Star 703
Fork 81

一款开源免费的和弦生成工具。我不懂乐理,但单从这个软件的界面就感受到了专业,因为有很多乐理的名词😅

ChordNova
Star 2.1k
Fork 433

读取 CSV 文件的 C++ 库(仅头文件)。示例代码:

# include "csv.h" int main(){ io::CSVReader<3> in("ram.csv"); in.read_header(io::ignore_extra_column, "vendor", "size", "speed"); std::string vendor; int size; double speed; while(in.read_row(vendor, size, speed)){ // 对 ram.csv 文件中的数据,做你想做的事情吧! } }